#include<cstdio>
#include<cstring>
const int maxn=110;
int g[maxn][maxn],n,m,f[maxn];
inline int max(int x,int y){return x>y?x:y;}
int main()
{
	while(scanf("%d%d",&n,&m),n!=0)
	{
		memset(f,0,sizeof(f));
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				scanf("%d",&g[i][j]);
		for(int i=1;i<=n;i++)
			for(int j=m;j>=0;j--)
				for(int k=1;k<=j;k++)
					f[j]=max(f[j],f[j-k]+g[i][k]);
		printf("%d\n",f[m]);
	}
	return 0;
}
					

